#include<stdio.h>

//数组的数据类型 数组名【数组长度】 
//数据类型 数组名 [行][列]={'第一行第一列的元素'、'第一行第二列的元素'}{'第二行第一列的元素'、'第二行第二列的元素'}


void f();


int main()
{
	f();

	//一维数组初始化和使用
	int a[] = { 1,2,3, };
	// int b[] = a[];      //err,
	// 不能直接直接用一个数组来初始化另一个数组

	int b[4] ;            //这里要用遍历数组来进行赋值
	for (int i = 0; i < 3; i++)
	{
		b[i] = a[i];
		printf("%d ", b[i]);
	}
	printf("\n");

	//二维数组初始化和使用
	int c[2][3] = { {1,2,3},{4,5,} };

	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			printf("%d ", c[i][j]);
		}
	}
		
	printf("\n");

	printf("二维数组c[][]在内存中占的字节数：%d\n", 
		sizeof(c));
	printf("二维数组c[][]中一行元素在内存中占的字节数：%d\n", 
		sizeof(c[0]));
	printf("二维数组c[][]中一个元素在内存中占的字节数：%d\n", 
		sizeof(c[0][0]));
	printf("二维数组c[][]的行数：%d\n",
		sizeof(c) / sizeof(c[0]));
	printf("二维数组c[][]的列数：%d\n", 
		sizeof(c[0]) / sizeof(c[0][0]));
	for (int i = 0; i < sizeof(c) / sizeof(c[0]); i++)
	{
		for (int j = 0; j < sizeof(c[0]) / sizeof(c[0][0]);
			j++)
		{
			printf("%d\t", c[i][j]);
		}
	}           
	printf("\n");

	// 字符数组和字符串
	char arr[5] = { 'h','e','l','l','o' };
	for (int i = 0; i < sizeof(arr); i++)
	{
		printf("%c", arr[i]);
	}
	printf("\n");
	//字符
	char ch0 = 'a';

	//char* arr = "Python";        
	//printf("%s\n", arr);
	
	// 字符串
	char arr2[] = "hello";
	char arr3[] = { 'h','e','l','l','o','\0' };  
	// 字符串结束标志位\0
	printf("%s\n", arr2);
	printf("%s\n", arr3);
	

	// 定义字符串数组存储字符串
	char ch[10];
	scanf_s("%9s", ch);
	printf("%s\n", ch);

	return 0;
}


void f()
{
	int a[10];
//	a[10] = 0;  //这是一个错误用法，这里的数组使用时越界了
	            //这里的数字元素下标从零开始，到9结束
}